home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / rhythmbox / plugins / lyrics / LyricsParse.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  2.0 KB  |  60 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import urllib
  5. import re
  6. import gobject
  7. import gconf
  8. import rb
  9. from LyrcParser import LyrcParser
  10. from AstrawebParser import AstrawebParser
  11. from LeoslyricsParser import LeoslyricsParser
  12. from LyricWikiParser import LyricWikiParser
  13. from WinampcnParser import WinampcnParser
  14. engines_map = {
  15.     'lyrc.com.ar': LyrcParser,
  16.     'astraweb.com': AstrawebParser,
  17.     'leoslyrics.com': LeoslyricsParser,
  18.     'lyricwiki.org': LyricWikiParser,
  19.     'winampcn.com': WinampcnParser }
  20.  
  21. class Parser(object):
  22.     
  23.     def __init__(self, gconf_keys, artist, title):
  24.         self.title = title
  25.         self.artist = artist
  26.         
  27.         try:
  28.             self.engines = gconf.client_get_default().get_list(gconf_keys['engines'], gconf.VALUE_STRING)
  29.             if self.engines is None:
  30.                 self.engines = []
  31.         except gobject.GError:
  32.             e = None
  33.             print e
  34.             self.engines = []
  35.  
  36.  
  37.     
  38.     def searcher(self, plexer, callback, *data):
  39.         for e in self.engines:
  40.             plexer.clear()
  41.             if e in engines_map:
  42.                 parser = engines_map[e](self.artist, self.title)
  43.                 print 'searching ' + e + ' for lyrics'
  44.                 parser.search(plexer.send())
  45.                 yield None
  46.                 (lyrics,) = (_,)
  47.                 if lyrics is not None:
  48.                     callback(lyrics, *data)
  49.                     return None
  50.                 continue
  51.             lyrics is not None
  52.         
  53.         callback(None, *data)
  54.  
  55.     
  56.     def get_lyrics(self, callback, *data):
  57.         rb.Coroutine(self.searcher, callback, *data).begin()
  58.  
  59.  
  60.